/*
 * @Author: 管哥哥 1729207740@qq.com
 * @Date: 2025-09-16 14:23:51
 * @LastEditors: 管哥哥 1729207740@qq.com
 * @LastEditTime: 2025-09-16 14:31:42
 * @FilePath: \web\src\components\leftControl\data.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// process-jiangsu-data.js
const fs = require('fs');
const path = require('path');
const readline = require('readline');

async function createJiangsuDatabase() {
    const inputPath = path.join(__dirname, 'CN.txt');
    const outputPath = path.join(__dirname, 'china-cities-jiangsu.json');
    
    // --- 新增 ---
    // 定义目标省份的代码，'04' 代表江苏省
    const targetAdmin1Code = '04'; 

    // 我们只关心城市，这里是一些常见的城市特征码
    const cityFeatureCodes = new Set(['PPLA', 'PPLA2', 'PPLA3', 'PPLA4', 'PPLC', 'PPL', 'PPLS']);

    const cityData = {};

    const fileStream = fs.createReadStream(inputPath);
    const rl = readline.createInterface({
        input: fileStream,
        crlfDelay: Infinity
    });

    console.log(`开始处理 CN.txt 文件，只提取江苏省 (代码: ${targetAdmin1Code}) 的数据...`);

    for await (const line of rl) {
        const columns = line.split('\t');
        
        // --- 核心修改 ---
        // 获取第11列的省份代码 (数组索引为10)
        const admin1Code = columns[10];
        const featureCode = columns[7];
        
        // 检查省份代码是否匹配，并且地点类型是我们想要的城市
        if (admin1Code === targetAdmin1Code && cityFeatureCodes.has(featureCode)) {
            const lat = parseFloat(columns[4]);
            const lon = parseFloat(columns[5]);
            const alternateNames = columns[3].split(',');

            // 找到中文名 (通常不含英文字母)
            const chineseName = alternateNames.find(name => /^[\u4e00-\u9fa5]+(?:市|县|区)?$/.test(name));
            
            if (chineseName) {
                // 去掉末尾的 "市"、"县"、"区" 字，以提高匹配率
                const cleanName = chineseName.replace(/(市|县|区)$/, '');
                
                // 防止重复，只记录第一个找到的（通常是更重要的那个）
                if (!cityData[cleanName]) {
                    cityData[cleanName] = { lat, lon };
                }
            }
        }
    }

    fs.writeFileSync(outputPath, JSON.stringify(cityData, null, 2));
    console.log(`处理完成！数据已保存到 ${outputPath}`);
    console.log(`共处理了 ${Object.keys(cityData).length} 个江苏省的地点。`);
}

createJiangsuDatabase();
